compiler design for gate